//加载一级知识点。二级知识点列表
var G_LevelKnowLedgeData;//一级知识点数据
var G_SecondKnowLedgeData;//二级级知识点数据
var G_LevelKnowLedgeName;//一级知识点名称
$(document).ready(function(){
    getCourseName();
    var loadknowledgelist=new loadKnowledgeList();
    loadknowledgelist.getLevelKnowLedgeList();
});
/********************************************************************************
 函数名：loadKnowledgeList
 功能：知识点列表项加载
 输入参数: 无
 返回值：无
 创建信息：姜勇军(2015-09-10）
 修改记录：无
 审查人：无
 *******************************************************************************/
function loadKnowledgeList(){
    G_Prg.setCookie('Url','knowledge.html',false);//获取iframe内的url,存放到cookie保存
    var curPage=0;//当前页数
    var eachPageNum=12;//每页显示数条数
    var totalCount=0;//总条数
    setClickEven();
    /********************************************************************************
     函数名：setClickEven
     功能：指点点击事件
     输入参数: 无
     返回值：无
     创建信息：姜勇军(2015-09-10)
     修改记录：无
     审查人：无
     *******************************************************************************/
    function setClickEven(){
        $("#qalist").click(function(){
            window.location.href='QAList.html';
        });
        $(document).on('click','#levelKnowledge li',(function () {
            $("#levelKnowledge li").addClass('active');
            $('#levelKnowledge li').not($(this)).removeClass('active');
        }));


    }
    /********************************************************************************
     函数名：getLevelKnowLedgeList
     功能：获取一级知识点
     输入参数: 无
     返回值：无
     创建信息：姜勇军(2015-09-10）
     修改记录：无
     审查人：无
     *******************************************************************************/
     this.getLevelKnowLedgeList=function(){
         var _success = function (json) {
             var jsonData = JSON.parse(json);
             if (jsonData.status === 200) {
                 G_LevelKnowLedgeData=jsonData.data;
                 setLevelKnowLedgeList();
              } else {
                 G_LevelKnowLedgeData="";
                 G_Popup.alert('提示',"" + jsonData.msg +"!");
             }
         }
         var URL = '/student/knowledgePoint/list?knowledgePointLevel='+1;
         G_AjaxApi.get(URL ,true, _success);
    }
    /********************************************************************************
     函数名：getLevelKnowLedgeList
     功能：一级知识点列表项加载
     输入参数: 无
     返回值：无
     创建信息：姜勇军(2015-09-10）
     修改记录：无
     审查人：无
     *******************************************************************************/
    function setLevelKnowLedgeList(){
        var  levelknowledgedata=G_LevelKnowLedgeData;
        var length=levelknowledgedata.list.length;
        if(length===0){
            G_Popup.alert('提示',"尚未添加一级级知识点，请等待！");
            return;
        }
        var ul =document.createElement('ul');
        ul.id='tt'
        ul.className='nav nav-pills nav-stacked';
        for(var i=0;i<length;i++){

             var li =document.createElement('li');
             var a=document.createElement('a');
             a.id=levelknowledgedata.list[i].knowledgePointID;
             a.name=levelknowledgedata.list[i].knowledgePointName;
             var name=levelknowledgedata.list[i].knowledgePointName;
            var firstKnowledgeID=levelknowledgedata.list[i].knowledgePointID;
            //G_Prg.setCookie('firstKnowledgeName',name,false);
            //G_Prg.setCookie('firstKnowledgeID',firstKnowledgeID,false);
             if(getLength(name)>13){
                 var nameString=cutstr(name,13);
                 nameString=nameString;
                 a.innerHTML=nameString;
                 var ul_t=document.createElement('ul');
                 var li_t=document.createElement('li');
                 ul_t.style.display='none';
                 li_t.innerHTML=name;
                 ul_t.appendChild(li_t)
                 li.appendChild(ul_t);

             }else{
                 a.innerHTML=name;
             }
             a.onclick=function(){
                 curPage=0;
                 G_LevelKnowLedgeName=this.name;
                 getSecondKnowLedgeList(this.id);
                 G_Prg.setCookie('firstName',G_LevelKnowLedgeName,false);
                 G_Prg.setCookie('firstID',firstKnowledgeID,false);

            };

            li.appendChild(a);
            li.appendChild(a);
            ul.appendChild(li);
        }
        G_Prg.$('levelKnowledge').appendChild(ul);
       //设置一级知识点ul:li第一项默认被单击
       $( "#levelKnowledge li:first-child a").click();
    }
    /********************************************************************************
     函数名：getSecondKnowLedgeList
     功能：获取二级知识点
     输入参数: parentID父知识点ID
     返回值：无
     创建信息：姜勇军(2015-09-10）
     修改记录：无
     审查人：无
     *******************************************************************************/
    function getSecondKnowLedgeList(parentID){
        G_Prg.$('secondaryKnowLedge').innerHTML='';
        G_Prg.$('pagelist').innerHTML='';
        var _success = function (json) {
            var jsonData = JSON.parse(json);
            if (jsonData.status === 200) {
                G_SecondKnowLedgeData=jsonData.data;
                totalCount=jsonData.data.total;
                setSecondKnowLedgeList(parentID);
            } else {
                G_LevelKnowLedgeData="";
                G_Popup.alert('提示',"" + jsonData.msg +"!");
            }
        }
        var URL = '/student/knowledgePoint/list?knowledgePointLevel='+2+'&curPage='+curPage+'&eachPageNum='+eachPageNum+'&parentID='+parentID;
        G_AjaxApi.get(URL ,true, _success);
    }
    /********************************************************************************
     函数名：setLevelKnowLedgeList
     功能：二级知识点列表项加载
     输入参数: parentID父知识点ID
     返回值：无
     创建信息：姜勇军(2015-09-10）
     修改记录：无
     审查人：无
     *******************************************************************************/
    function setSecondKnowLedgeList(parentID){
        G_Prg.$('secondaryKnowLedge').innerHTML='';
        G_Prg.$('pagelist').innerHTML='';
        var  secondknowledgedata=G_SecondKnowLedgeData;
        var length=secondknowledgedata.list.length;
        if(length===0){
            G_Popup.alert('提示',""+G_LevelKnowLedgeName+"：尚未添加二级知识点，请等待！");
            G_Prg.$('pagelist').innerHTML='';
            return;
        }
         for(var i=0;i<length;i++) {
            var div_child =document.createElement('div');
            div_child.className='col-xs-6 col-md-3';
            var a =document.createElement('a');
            a.className='thumbnail';

            var img =document.createElement('img');
            if(secondknowledgedata.list[i].unlock===1){
               img.src="../img/unlock.png";
               var knowledgePointID =secondknowledgedata.list[i].knowledgePointID;
               var knowledgePointName =secondknowledgedata.list[i].knowledgePointName;
               a.onclick=function(){
                    G_Prg.setCookie('knowledgePointName',knowledgePointName,false);
                    window.location.href='courseWare.html?knowledgePointID='+knowledgePointID;
                }
            } else{
               img.src="../img/lock.png";
                a.onclick=function(){
                    G_Popup.alert('提示','该知识点未解锁，请等待');
                }
            }
            var span =document.createElement('span');
            span.className='text-muted';
            span.innerHTML=secondknowledgedata.list[i].knowledgePointName;

            a.appendChild(img);
            a.appendChild(span);
            div_child.appendChild(a);
            G_Prg.$('secondaryKnowLedge').appendChild(div_child);
        }
            createPageList(parentID);

    }
    /********************************************************************************
     函数名：createPageList
     功能：页码单击事件
     输入参数:无
     返回值：无
     创建信息：姜勇军(2015-09-15）
     修改记录：无
     审查人：无
     ********************************************************************************/
    function createPageList(parentID){
        $('#pagelist').pageBar({
            onJump: function (targetPage) {//用户点击跳转时候回调
                //参数targetPage为用户点击的页码
                //这里一般向后台请求数据,请求成功后执行下面代码,重新渲染html
                curPage = targetPage-1;
                getSecondKnowLedgeList(parentID);
                this.pageBar('render', {//渲染html
                    pageSize: eachPageNum, totalCount: totalCount, currPage: curPage
                })
            }
        }).pageBar('render', {//渲染html
            pageSize: eachPageNum  //每页显示数
            , totalCount: totalCount//数据总条数
            , currPage: curPage   //当前页
        });

    }
}
/********************************************************************************
 函数名：getCourseName
 功能：获取url参数
 输入参数: 无
 返回值：无
 创建信息：姜勇军(2015-09-10)
 修改记录：无
 审查人：无
 *******************************************************************************/
function getCourseName() {
    G_Prg.$('courseName').innerHTML = '<b>' +G_Prg.getCookie('courseName') + '</b>';
}

/********************************************************************************
 函数名：getLength
 功能： js截取字符串，中英文都能用
 输入参数: str：需要截取的字符串，len: 需要截取的长度
 返回值：无
 创建信息：姜勇军(2015-11-23)
 修改记录：无
 审查人：无
 *******************************************************************************/
function  getLength (str) {
    ///<summary>获得字符串实际长度，中文2，英文1</summary>
    ///<param name="str">要获得长度的字符串</param>
    var realLength = 0, len = str.length, charCode = -1;
    for (var i = 0; i < len; i++) {
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) realLength += 1;
        else realLength += 2;
    }
    return realLength;
};
 /********************************************************************************
 函数名：cutstr
 功能： js截取字符串，中英文都能用
 输入参数: str：需要截取的字符串，len: 需要截取的长度
 返回值：无
 创建信息：姜勇军(2015-11-23)
 修改记录：无
 审查人：无
 *******************************************************************************/
function cutstr(str, len) {
    var str_length = 0;
    var str_len = 0;
    str_cut = new String();
    str_len = str.length;
    for (var i = 0; i < str_len; i++) {
        a = str.charAt(i);
        str_length++;
        if (escape(a).length > 4) {
            //中文字符的长度经编码之后大于4
            str_length++;
        }
        str_cut = str_cut.concat(a);
        if (str_length >= len) {
            str_cut = str_cut.concat("...");
            return str_cut;
        }
    }
    //如果给定字符串小于指定长度，则返回源字符串；
    if (str_length < len) {
        return str;
    }
}